void main() {
  //
  // 类的继承
  Animal a = Animal("动物", 18);
  a.eat();
  // 创建子类对象
  Dog d = Dog("狗", 18, "公");
  d.eat();
  d.run();
  print(d.sex);
}

// 类的继承
class Animal {
  String? name;
  int? age;
  Animal(this.name, this.age);
  eat() {
    print("$name-$age正在吃东西");
  }
}

// 子类继承父类
class Dog extends Animal {
  // 子类的构造函数
  // Dog(String name, int age) : super(name, age);
  String? sex;
  // 子类的构造函数,super调用父组件的构造函数
  Dog(super.name, super.age, this.sex);
  // 子类独有的方法
  run() {
    print("$name-$age正在跑");
  }
  // 子类重写父类的方法
  @override
  eat() {
    print("$name-$age正在吃骨头");
  }
}
